using System.Text;

namespace OracleInternal.SqlAndPlsqlParser.LocalParsing.Ansi
{
	internal class OracleLpAnsiOuterJoinClauseNoCondition : OracleLpBaseAnsiJoinClauseNoCondition, IOracleLpAnsiOuterJoinClauseBase
	{
		protected bool m_vOuter;

		protected OracleLpOuterJoinType m_vType;

		protected bool m_vNatural;

		public override OracleLpJoinClauseType ClauseType => OracleLpJoinClauseType.Outer;

		public bool Outer
		{
			get
			{
				return m_vOuter;
			}
			set
			{
				m_vOuter = value;
			}
		}

		public OracleLpOuterJoinType Type
		{
			get
			{
				return m_vType;
			}
			set
			{
				m_vType = value;
			}
		}

		public bool Natural
		{
			get
			{
				return m_vNatural;
			}
			set
			{
				m_vNatural = value;
			}
		}

		public OracleLpAnsiOuterJoinClauseNoCondition(OracleLpFromListTerm ft)
			: base(ft)
		{
		}

		internal override void ToString(StringBuilder sb)
		{
			string depthIndent = base.DepthIndent;
			sb.Append(depthIndent);
			sb.Append("JoinType:  ");
			sb.Append(ClauseType);
			sb.Append("  OuterJoinType:  ");
			sb.Append(m_vType);
			sb.Append('\n');
			m_vTablePrimary.ToString(sb);
		}
	}
}
